<?php
namespace App\Services\Office;

use Excel;


class WyOffice
{
    //pdf主体
    public function pdfBody($data,$full_name,$expired_time,$parsed_data='',$online_time){
        $online_time = explode("-", $online_time);
        $sp_time = explode("-", $expired_time);
        $company = $data[0]['company']['company_name'];
        $pdf = new \TCPDF();
        $pdf->setPrintHeader(false);
        $pdf->setPrintFooter(false);

        // 设置默认等宽字体
        $pdf->SetDefaultMonospacedFont('courier');
        $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
        $pdf->setFontSubsetting(true);

        //设置字体 stsongstdlight支持中文
        $pdf->SetFont('stsongstdlight', '', 14);

        //第一页
        $pdf->AddPage();
        $html = <<<EOD
<h1 style="text-align:center">音乐作品和制品授权使用证明</h1>
<p style="font-weight:bold">授权方：$company</p>
<p style="font-weight:bold">被授权方：$full_name</p>
<p>授权内容：详见《授权作品/制品清单》，以及与前述授权作品/制品清单所载作品和制品相关的摄影作品、文字作品、姓名、肖像、标识等。</p>
<p>授权性质：独家首发授权七天加非独家授权，即授权方将授权内容之全部信息网络传播权授予被授权方。</p>
<p>授权范围：授权方授权许可被授权方及其关联公司在授权区域及授权期限内于网易音乐业务中使用授权内容（含片段、全曲等），具体权利范围包括但不限于：</p>
<p>（1）以有线或无线的信息网络以及与信息网络相关的方式提供授权内容的串流、下载、播放、复制、传输、展示、推广或以其他方式使用授权内容；</p>
<p>（2）将授权内容固定在有形载体上并通过信息网络进行展示、传播或以其他方式予以利用；</p>
<p>（3）在网易产品中植入、展示、播放或以其他方式利用授权内容；</p>
<p>（4）以合作的方式与第三方共同以上述方式用授权内容；</p>
<p>（5）对授权内容的使用包含对授权内容中单个作品/制品的使用、对作品/制品片段的使用、对多个作品/制品组合的使用、对多个作品/制品片段组合的使用、对多个作品/制品和作品/制品片段的使用等；</p>
<p>（6）为实现上述使用目的，对授权内容中的图片、文字等进行必要的编辑、修改等。</p>
<p>网易音乐业务：指通过被授权方享有权益的“网易产品”使用授权内容进行信息网络数字音乐服务。“网易产品”包括：网易集团（即：乙方及其关联公司）下属各网站（www.163.com；www.126.com；www.yeah.net；www.188.com；www.youdao.com；www. lofter.com及网易集团不时更换或增加的域名），包括该等网站的子域名网页或平台；网易下属各移动网信息平台，以及可通过信息网络以及与信息网络相关的方式使用的产品。</p>
<p>授权期间：自$online_time[0]年$online_time[1]月$online_time[2]日起至$sp_time[0]年$sp_time[1]月$sp_time[2]日</p>
<p>授权区域：中国大陆，不含港澳台地区。</p>
EOD;
        $pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);
        //第二页
        $pdf->AddPage();
        $pdf->writeHTML('授权作品/制品清单：', true, false, true, false, '');
        $table="
<table border=\"1\" align=\"center\">
<tr>
<td>序号</td>
<td>专辑名</td>
<td>作品/制品名称</td>
<td>表演者</td>
<td>词作者</td>
<td>曲作者</td>
<td>词著作权</td>
<td>曲著作权</td>
<td>表演者权</td>
<td>录音制作者权</td>
<td>录像制作者权</td>
<td>视听作品著作权</td>
</tr>";
        $j=0;
        $b = &$j;
        foreach($data as $v){
            if(empty($v['album'])){$album=$v['title'];}else{$album=$v['album'];}
            $table.="
<tr>
<td>".($b = $b+1)."</td>
<td>".$album."</td>
<td>".$v['title']."</td>
<td>".$v['performer']."</td>
<td>".$v['writer']."</td>
<td>".$v['composer']."</td>
<td>".$v['neighboring_right_2']."%</td>
<td>".$v['neighboring_right_3']."%</td>
<td>".$v['neighboring_right_1']."%</td>
<td>100%</td>
<td>0%</td>
<td>0%</td>
</tr>";
            if($v['accompaniment_file_uuid']!=''){
                $table.="
                    <tr>
                        <td>".($b = $b+1)."</td>
                        <td>".$album."</td>
                        <td>".$v['title'].'（伴奏）'."</td>
                        <td>".$v['performer']."</td>
                        <td>".$v['writer']."</td>
                        <td>".$v['composer']."</td>
                        <td>".$v['neighboring_right_2']."%</td>
                        <td>".$v['neighboring_right_3']."%</td>
                        <td>".$v['neighboring_right_1']."%</td>
                        <td>100%</td>
                        <td>0%</td>
                        <td>0%</td>
                    </tr>";
            }
            if($v['mv_file_uuid']!=''){
                $table.="
                    <tr>
                        <td>".($b = $b+1)."</td>
                        <td>".$album."</td>
                        <td>".$v['title'].'（MV）'."</td>
                        <td>".$v['performer']."</td>
                        <td>".$v['writer']."</td>
                        <td>".$v['composer']."</td>
                        <td>".$v['neighboring_right_2']."%</td>
                        <td>".$v['neighboring_right_3']."%</td>
                        <td>".$v['neighboring_right_1']."%</td>
                        <td>100%</td>
                        <td>100%</td>
                        <td>100%</td>
                    </tr>";
            }
        }
        $table.="</table>";
        $pdf->writeHTML($table, true, false, false, false, '');
        $html2 = <<<EOD
        <p>特此证明。</p>
        <p style="text-align: right">授权人：$company</p>
        <p style="text-align: right">授权日期： $online_time[0]年$online_time[1]月$online_time[2]日</p>
EOD;
        $pdf->writeHTMLCell(0, 0, '', '', $html2, 0, 1, 0, true, '', true);
        if($parsed_data!='') {
            $pdf->Image(public_path($parsed_data['path']), '145', $pdf->GetY()-30, 40, 40, '', '', '', false, 300, '', false, false, 1, false, false, false);
        }
        return $pdf;
    }

    //生成盖章pdf
    public function makeSignPdf($data,$full_name,$simple_name,$expired_time,$rand,$image,$fix_time,$sp_email,$online_time)
    {
        $parsed_data = parse_url($image);
        $pdf = $this->pdfBody($data,$full_name,$expired_time,$parsed_data,$online_time);
        $num = $pdf->getNumPages();
        $path = substr($parsed_data['path'],0,strrpos($parsed_data['path'],'/')+1);
        $name = substr($parsed_data['path'],strrpos($parsed_data['path'],'/')+1);
        $fname = $_SERVER['DOCUMENT_ROOT'].$path.'/small_'.$name;
        if(file_exists($fname)){
            $toImage = $fname;
        }else{
            $toImage = $_SERVER['DOCUMENT_ROOT'].$parsed_data['path'];
        }
        $ext = explode(".", $image);
        $ext = $ext[count($ext)-1];
        cutImage($toImage,$num,$ext);
        for($i=0;$i<$num;$i++){
            $pdf->setPage(($i+1));
            $pdf->Image('image/'.$i.'.'.$ext, '180', '120', 25,  '', '', '', 'T', false, 300, '', false, false, 1, false, false, false);
        }
        //输出PDF
        $data = $pdf->Output('t.pdf', 'S');//I输出、D下载
        $dir = date('Y-m-d').'-sign-'.$rand;
        @mkdir(storage_path('/exports/'.$dir),0777);
        file_put_contents(storage_path('/exports/'.date('Y-m-d').'-sign-'.$rand.'/'.$simple_name . date('Y-m-d').'-sign.pdf'),$data);
        return $dir;
    }

    //生成无章pdf
    public function makePdf($data,$full_name,$simple_name,$expired_time,$rand,$fix_time,$sp_email,$online_time){
        $pdf = $this->pdfBody($data,$full_name,$expired_time,'',$online_time);
        $data = $pdf->Output('t.pdf', 'S');//I输出、D下载
        $dir = date('Y-m-d').'-'.$rand;
        @mkdir(storage_path('/exports/'.$dir),0777);
        file_put_contents(storage_path('/exports/'.date('Y-m-d').'-'.$rand.'/'.$simple_name . date('Y-m-d').'.pdf'),$data);
        return $dir;
    }


    //生成execl
    public function makeExecl($data,$full_name,$simple_name,$start_time,$expired_time,$rand,$online_time)
    {
        $cellData = [
            ['唱片公司名称', '专辑名称', 'UPC', '专辑发行日期', '专辑艺人', '专辑封面文件名', '歌曲名', '歌曲文件名', 'ISRC', '盘符', '音轨', '歌曲艺人', '作词', '作曲', '音频时长', '风格'],
        ];
        foreach ($data as $k => $v) {
            if(empty($v['album'])){$album=$v['title'];}else{$album=$v['album'];}
            $time = json_decode($v['music_file']['metadata'],true);
            $image = getimagesize($v['cover']);
            $ext = substr($image['mime'],strrpos($image['mime'],'/')+1);
            $musicExt = substr($v['music_file']['local_path'],strrpos($v['music_file']['local_path'],'.')+1);
            $cell[] = [$v['company']['company_name'], $album, '', str_replace("-",".",$online_time), $v['performer'], $v['title'].'.'.$ext, $v['title'], $v['title'].'-'.$v['performer'].'.'.$musicExt, '', '', '', $v['performer'], $v['writer'], $v['composer'], $time['Duration'], ''];
            if($v['accompaniment_file_uuid']!=''){
                $cell[] = [$v['company']['company_name'], $album, '', str_replace("-",".",$online_time), $v['performer'], $v['title'].'.'.$ext, $v['title'].'（伴奏）', $v['title'].'（伴奏）'.'-'.$v['performer'].'.'.$musicExt, '', '', '', $v['performer'], $v['writer'], $v['composer'], $time['Duration'], ''];
            }
            if($v['mv_file_uuid']!=''){
                $cell[] = [$v['company']['company_name'], $album, '', str_replace("-",".",$online_time), $v['performer'], $v['title'].'.'.$ext, $v['title'].'（MV）', $v['title'].'（MV）'.'-'.$v['performer'].'.'.$musicExt, '', '', '', $v['performer'], $v['writer'], $v['composer'], $time['Duration'], ''];
            }
        }
        $c = array_merge($cellData, $cell);
        Excel::create($simple_name . date('Y-m-d').'-'.$rand,function($excel) use ($c,$v){
            $excel->sheet('sheet1', function($sheet) use ($c){
                $sheet->setAutoSize(false);
                $sheet->rows($c);
            });
        })->store('xls');
    }


}
